package com.example.springbott.mapper;

import com.example.springbott.bean.MarketOrder;
import com.example.springbott.bean.MarketOrderExample;
import com.example.springbott.bean.common.InnerStatOrderVO;
import com.example.springbott.bean.zeng.AdminOrderReplyBO;
import com.example.springbott.wx_bean_heheer.DateTest;
import com.example.springbott.wx_bean_heheer.DateTest1;
import com.example.springbott.wx_bean_heheer.OrderListBO;
import com.example.springbott.wx_bean_heheer.order.OrderCommentPO;
import com.example.springbott.wx_bean_heheer.order.OrderDetailOrderInfo;
import com.example.springbott.wx_bean_heheer.order.OrderGoods;
import com.example.springbott.wx_bean_heheer.order.OrderGoodsVO;
import org.apache.ibatis.annotations.Param;

import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;

public interface MarketOrderMapper {
    long countByExample(MarketOrderExample example);

    int deleteByExample(MarketOrderExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(MarketOrder record);

    int insertSelective(MarketOrder record);

    List<MarketOrder> selectByExample(MarketOrderExample example);

    MarketOrder selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") MarketOrder record, @Param("example") MarketOrderExample example);

    int updateByExample(@Param("record") MarketOrder record, @Param("example") MarketOrderExample example);

    int updateByPrimaryKeySelective(MarketOrder record);

    int updateByPrimaryKey(MarketOrder record);

    List<InnerStatOrderVO> statOrder();


    List<DateTest1> selectOrder(@Param("userId") String userId, @Param("orderListBO") OrderListBO orderListBO);

    List<DateTest1> selectOrderNotrep(String userId);

    List<OrderGoods> orderDetail(String orderId);

    OrderDetailOrderInfo orderDetailByOrderInfo(String orderId);

    void orderDeleted(Integer orderId);

    int userUnrecvSummary(Integer userId);

    int userUncommentSummary(Integer userId);

    int userUnpaidSummary(Integer userId);

    int userUnshipSummary(Integer userId);

    DateTest1 selectOrder(String userId);


    void OrderCancel(Integer orderId);

    void orderConfirm(@Param("orderId") Integer orderId, @Param("date") Date date);

    void orderRefund(@Param("orderId") Integer orderId, @Param("date") Date date, @Param("refundType") String refundType, @Param("price") Double price);

    Double selectActualPrice(Integer orderId);

    OrderGoodsVO orderGoods(@Param("orderId") String orderId, @Param("goodsId") String goodsId);

    OrderCommentPO selectGoodsKey(Integer orderGoodsId);

    void orderComment(@Param("orderGoodsId") Integer orderGoodsId, @Param("commentId") Integer commentId, @Param("data") Date data);

    Integer orderDetailId(Integer id);

    String adminOrderReplyCommentIsNull(Integer commentId);

    void addAdminOrderReplyComment(AdminOrderReplyBO adminOrderReplyBO);

    void updateComments(@Param("comments") int comments, @Param("id") int id);
}